function F = evaluate(Z, data_x, data_y, num_lable)
num_simple = size(Z, 1);
F = zeros(num_simple, 1);
% 采用1-NN
k = 1;
for i = 1 : num_simple
    data_x1 = data_x(:, Z(i, :) == 1);
    n = size(data_x1, 1);
    test_y = zeros(n ,1);
    for i1 = 1 : n
        % 在样本集中选择一个样本作为测试集，其他样本作为训练集
        test_x = data_x1(i1, :);
        if i1 == 1
            ind = i1 + 1 : n;
            test_y(i1, :) = knn(data_x1(ind, :), data_y(ind, :), test_x, k, num_lable);
        else
            ind = [1 : i1 - 1, i1 + 1 : n];
            test_y(i1, :) = knn(data_x1(ind, :), data_y(ind, :), test_x, k, num_lable);
        end
    end
    % 正确率与正确个数
    acc_num = sum(test_y == data_y);
    acc_rate =1.0 * acc_num ./ n;
    % fprintf("data total: %d feature select: Z(%d,:) acc_num: %d acc_rate: %.4f\n",n,i,acc_num,acc_rate); 
    F(i, :) = acc_rate;
end
end